Elf_Phdr *phdr;
Elf_Shdr *shdr;
unsigned long kernstart = ~0UL, kernend=0UL;
- char *shstrtab, *guestinfo, *p;
+ char *shstrtab, *guestinfo=NULL, *p;
int h;
if ( !IS_ELF(*ehdr) )
return -EINVAL;
}
- *pvirtstart = kernstart;
- if ( (p = strstr(guestinfo, "VIRT_BASE=")) != NULL )
- *pvirtstart = strtoul(p+10, &p, 0);
-
break;
}
- if ( h == ehdr->e_shnum )
+ if ( guestinfo == NULL )
{
ERROR("Not a Xen-ELF image: '__xen_guest' section not found.");
return -EINVAL;
return -EINVAL;
}
+ *pvirtstart = kernstart;
+ if ( (p = strstr(guestinfo, "VIRT_BASE=")) != NULL )
+ *pvirtstart = strtoul(p+10, &p, 0);
+
*pkernstart = kernstart;
*pkernend = kernend;
*pkernentry = ehdr->e_entry;
Elf_Phdr *phdr;
Elf_Shdr *shdr;
unsigned long kernstart = ~0UL, kernend=0UL;
- char *shstrtab, *guestinfo, *p;
+ char *shstrtab, *guestinfo=NULL, *p;
int h;
if ( !IS_ELF(*ehdr) )
return -EINVAL;
}
- *pvirtstart = kernstart;
- if ( (p = strstr(guestinfo, "VIRT_BASE=")) != NULL )
- *pvirtstart = simple_strtoul(p+10, &p, 0);
-
break;
}
- if ( h == ehdr->e_shnum )
+ if ( guestinfo == NULL )
{
printk("Not a Xen-ELF image: '__xen_guest' section not found.\n");
return -EINVAL;
return -EINVAL;
}
+ *pvirtstart = kernstart;
+ if ( (p = strstr(guestinfo, "VIRT_BASE=")) != NULL )
+ *pvirtstart = simple_strtoul(p+10, &p, 0);
+
*pkernstart = kernstart;
*pkernend = kernend;
*pkernentry = ehdr->e_entry;